home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / CIncludes / OCEStandardMail.h < prev    next >
C/C++ Source or Header  |  1996-05-01  |  21KB  |  597 lines

  1. /*
  2.      File:        OCEStandardMail.h
  3.  
  4.      Contains:    Apple Open Collaboration Environment Standard Mail Interfaces.
  5.  
  6.      Version:    Technology:    AOCE Toolbox 1.02
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. */
  18. #ifndef __OCESTANDARDMAIL__
  19. #define __OCESTANDARDMAIL__
  20.  
  21. #ifndef __APPLEEVENTS__
  22. #include <AppleEvents.h>
  23. #endif
  24. #ifndef __DIALOGS__
  25. #include <Dialogs.h>
  26. #endif
  27. #ifndef __FILES__
  28. #include <Files.h>
  29. #endif
  30. #ifndef __WINDOWS__
  31. #include <Windows.h>
  32. #endif
  33. #ifndef __OCEAUTHDIR__
  34. #include <OCEAuthDir.h>
  35. #endif
  36. #ifndef __OCEMAIL__
  37. #include <OCEMail.h>
  38. #endif
  39.  
  40. #ifdef __cplusplus
  41. extern "C" {
  42. #endif
  43.  
  44. #if PRAGMA_IMPORT_SUPPORTED
  45. #pragma import on
  46. #endif
  47.  
  48. #if PRAGMA_ALIGN_SUPPORTED
  49. #pragma options align=mac68k
  50. #endif
  51.  
  52. #if FOR_SYSTEM7_ONLY
  53.  
  54. enum {
  55.     kSMPVersion                    = 1,
  56.     gestaltSMPMailerVersion        = 'malr',
  57.     gestaltSMPSPSendLetterVersion = 'spsl',
  58.     kSMPNativeFormatName        = 'natv'
  59. };
  60.  
  61. struct LetterSpec {
  62.     unsigned long                     spec[3];
  63. };
  64. typedef struct LetterSpec LetterSpec;
  65.  
  66.  
  67. enum {
  68.     typeLetterSpec                = 'lttr'
  69. };
  70.  
  71. /*    Wildcard used for filtering letter types. */
  72.  
  73. enum {
  74.     FilterAnyLetter                = 'ltr*',
  75.     FilterAppleLetterContent    = 'ltc*',
  76.     FilterImageContent            = 'lti*'
  77. };
  78.  
  79. struct LetterDescriptor {
  80.     Boolean                         onDisk;
  81.     Boolean                         filler1;
  82.     union {
  83.         FSSpec                             fileSpec;
  84.         LetterSpec                         mailboxSpec;
  85.     }                                 u;
  86. };
  87. typedef struct LetterDescriptor LetterDescriptor;
  88.  
  89. /*
  90. SMPPSendAs values.  You may add the following values together to determine how the
  91. file is sent, but you may not set both kSMPSendAsEnclosureMask and kSMPSendFileOnlyMask.  This
  92. will allow you to send the letter as an image so that it will work with fax gateways
  93. and send as an enclosure as well.
  94. */
  95.  
  96. enum {
  97.     kSMPSendAsEnclosureBit        = 0,                            /* Appears as letter with enclosures */
  98.     kSMPSendFileOnlyBit            = 1,                            /* Appears as a file in mailbox. */
  99.     kSMPSendAsImageBit            = 2                                /* Content imaged in letter */
  100. };
  101.  
  102. /* Values of SMPPSendAs */
  103.  
  104. enum {
  105.     kSMPSendAsEnclosureMask        = 1 << kSMPSendAsEnclosureBit,
  106.     kSMPSendFileOnlyMask        = 1 << kSMPSendFileOnlyBit,
  107.     kSMPSendAsImageMask            = 1 << kSMPSendAsImageBit
  108. };
  109.  
  110. typedef Byte SMPPSendAs;
  111. /* Send Package Structures */
  112. typedef pascal void (*SMPDrawImageProcPtr)(long refcon, Boolean inColor);
  113.  
  114. #if GENERATINGCFM
  115. typedef UniversalProcPtr SMPDrawImageUPP;
  116. #else
  117. typedef SMPDrawImageProcPtr SMPDrawImageUPP;
  118. #endif
  119.  
  120. enum {
  121.     uppSMPDrawImageProcInfo = kPascalStackBased
  122.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(long)))
  123.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Boolean)))
  124. };
  125.  
  126. #if GENERATINGCFM
  127. #define NewSMPDrawImageProc(userRoutine)        \
  128.         (SMPDrawImageUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSMPDrawImageProcInfo, GetCurrentArchitecture())
  129. #else
  130. #define NewSMPDrawImageProc(userRoutine)        \
  131.         ((SMPDrawImageUPP) (userRoutine))
  132. #endif
  133.  
  134. #if GENERATINGCFM
  135. #define CallSMPDrawImageProc(userRoutine, refcon, inColor)        \
  136.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSMPDrawImageProcInfo, (refcon), (inColor))
  137. #else
  138. #define CallSMPDrawImageProc(userRoutine, refcon, inColor)        \
  139.         (*(userRoutine))((refcon), (inColor))
  140. #endif
  141. struct SMPRecipientDescriptor {
  142.     struct SMPRecipientDescriptor *    next;                        /*  Q-Link. */
  143.     OSErr                             result;                        /*  result code when using the object. */
  144.     OCEPackedRecipient *            recipient;                    /*  Pointer to a Packed Address. */
  145.     unsigned long                     size;                        /*  length of recipient in bytes. */
  146.     MailRecipient                     theAddress;                    /*  structure points into recipient and theRID. */
  147.     RecordID                         theRID;                        /*  structure points into recipient. */
  148. };
  149. typedef struct SMPRecipientDescriptor SMPRecipientDescriptor;
  150.  
  151. typedef SMPRecipientDescriptor *SMPRecipientDescriptorPtr;
  152. struct SMPEnclosureDescriptor {
  153.     struct SMPEnclosureDescriptor *    next;
  154.     OSErr                             result;
  155.     FSSpec                             fileSpec;
  156.     OSType                             fileCreator;                /*  Creator of this enclosure. */
  157.     OSType                             fileType;                    /*  File Type of this enclosure. */
  158. };
  159. typedef struct SMPEnclosureDescriptor SMPEnclosureDescriptor;
  160.  
  161. typedef SMPEnclosureDescriptor *SMPEnclosureDescriptorPtr;
  162. struct SMPLetterPB {
  163.     OSErr                             result;                        /* result of operation */
  164.     RStringPtr                         subject;                    /* RString */
  165.     AuthIdentity                     senderIdentity;                /* Letter is sent from this Identity */
  166.     SMPRecipientDescriptorPtr         toList;                        /* Pointer to linked list */
  167.     SMPRecipientDescriptorPtr         ccList;                        /* Pointer to linked list */
  168.     SMPRecipientDescriptorPtr         bccList;                    /* Pointer to linked list */
  169.     ScriptCode                         script;                        /* Identifier for language */
  170.     Size                             textSize;                    /* length of body data */
  171.     void *                            textBuffer;                    /* body of the letter */
  172.     SMPPSendAs                         sendAs;                        /* Send as Letter,Enclosure,Image */
  173.     Byte                             padByte;
  174.     SMPEnclosureDescriptorPtr         enclosures;                    /* files to be enclosed */
  175.     SMPDrawImageUPP                 drawImageProc;                /* For imaging */
  176.     long                             imageRefCon;                /* For imaging */
  177.     Boolean                         supportsColor;                /* For imaging - set to true if you application supports color imaging */
  178.     Boolean                         filler1;
  179. };
  180. typedef struct SMPLetterPB SMPLetterPB;
  181.  
  182. typedef SMPLetterPB *SMPLetterPBPtr;
  183.  
  184. enum {
  185.     kSMPAppMustHandleEventBit    = 0,
  186.     kSMPAppShouldIgnoreEventBit    = 1,
  187.     kSMPContractedBit            = 2,
  188.     kSMPExpandedBit                = 3,
  189.     kSMPMailerBecomesTargetBit    = 4,
  190.     kSMPAppBecomesTargetBit        = 5,
  191.     kSMPCursorOverMailerBit        = 6,
  192.     kSMPCreateCopyWindowBit        = 7,
  193.     kSMPDisposeCopyWindowBit    = 8
  194. };
  195.  
  196. /* Values of SMPMailerResult */
  197.  
  198. enum {
  199.     kSMPAppMustHandleEventMask    = 1 << kSMPAppMustHandleEventBit,
  200.     kSMPAppShouldIgnoreEventMask = 1 << kSMPAppShouldIgnoreEventBit,
  201.     kSMPContractedMask            = 1 << kSMPContractedBit,
  202.     kSMPExpandedMask            = 1 << kSMPExpandedBit,
  203.     kSMPMailerBecomesTargetMask    = 1 << kSMPMailerBecomesTargetBit,
  204.     kSMPAppBecomesTargetMask    = 1 << kSMPAppBecomesTargetBit,
  205.     kSMPCursorOverMailerMask    = 1 << kSMPCursorOverMailerBit,
  206.     kSMPCreateCopyWindowMask    = 1 << kSMPCreateCopyWindowBit,
  207.     kSMPDisposeCopyWindowMask    = 1 << kSMPDisposeCopyWindowBit
  208. };
  209.  
  210. typedef unsigned long SMPMailerResult;
  211. /* Values of SMPMailerComponent*/
  212.  
  213. enum {
  214.     kSMPOther                    = -1,
  215.     kSMPFrom                    = 32,
  216.     kSMPTo                        = 20,
  217.     kSMPRegarding                = 22,
  218.     kSMPSendDateTime            = 29,
  219.     kSMPAttachments                = 26,
  220.     kSMPAddressOMatic            = 16
  221. };
  222.  
  223. typedef unsigned long SMPMailerComponent;
  224.  
  225. enum {
  226.     kSMPToAddress                = kMailToBit,
  227.     kSMPCCAddress                = kMailCcBit,
  228.     kSMPBCCAddress                = kMailBccBit
  229. };
  230.  
  231. typedef MailAttributeID SMPAddressType;
  232.  
  233. enum {
  234.     kSMPUndoCommand                = 0,
  235.     kSMPCutCommand                = 1,
  236.     kSMPCopyCommand                = 2,
  237.     kSMPPasteCommand            = 3,
  238.     kSMPClearCommand            = 4,
  239.     kSMPSelectAllCommand        = 5
  240. };
  241.  
  242. typedef unsigned short SMPEditCommand;
  243.  
  244. enum {
  245.     kSMPUndoDisabled            = 0,
  246.     kSMPAppMayUndo                = 1,
  247.     kSMPMailerUndo                = 2
  248. };
  249.  
  250. typedef unsigned short SMPUndoState;
  251. /*
  252. SMPSendFormatMask:
  253.  
  254. Bitfield indicating which combinations of formats are included in,
  255. should be included or, or can be included in a letter.
  256. */
  257.  
  258. enum {
  259.     kSMPNativeBit                = 0,
  260.     kSMPImageBit                = 1,
  261.     kSMPStandardInterchangeBit    = 2
  262. };
  263.  
  264. /* Values of SMPSendFormatMask */
  265.  
  266. enum {
  267.     kSMPNativeMask                = 1 << kSMPNativeBit,
  268.     kSMPImageMask                = 1 << kSMPImageBit,
  269.     kSMPStandardInterchangeMask    = 1 << kSMPStandardInterchangeBit
  270. };
  271.  
  272. typedef unsigned long SMPSendFormatMask;
  273. /*
  274.     Pseudo-events passed to the clients filter proc for initialization and cleanup.
  275. */
  276.  
  277. enum {
  278.     kSMPSendOptionsStart        = -1,
  279.     kSMPSendOptionsEnd            = -2
  280. };
  281.  
  282. /*
  283. SMPSendFormatMask:
  284.  
  285. Structure describing the format of a letter.  If kSMPNativeMask bit is set, the whichNativeFormat field indicates which of the client-defined formats to use.
  286. */
  287. struct SMPSendFormat {
  288.     SMPSendFormatMask                 whichFormats;
  289.     short                             whichNativeFormat;            /* 0 based */
  290. };
  291. typedef struct SMPSendFormat SMPSendFormat;
  292.  
  293. struct SMPLetterInfo {
  294.     OSType                             letterCreator;
  295.     OSType                             letterType;
  296.     RString32                         subject;
  297.     RString32                         sender;
  298. };
  299. typedef struct SMPLetterInfo SMPLetterInfo;
  300.  
  301.  
  302. enum {
  303.     kSMPSave                    = 0,
  304.     kSMPSaveAs                    = 1,
  305.     kSMPSaveACopy                = 2
  306. };
  307.  
  308. typedef unsigned short SMPSaveType;
  309. typedef pascal WindowPtr (*FrontWindowProcPtr)(long clientData);
  310. typedef pascal void (*PrepareMailerForDrawingProcPtr)(WindowPtr window, long clientData);
  311.  
  312. #if GENERATINGCFM
  313. typedef UniversalProcPtr FrontWindowUPP;
  314. typedef UniversalProcPtr PrepareMailerForDrawingUPP;
  315. #else
  316. typedef FrontWindowProcPtr FrontWindowUPP;
  317. typedef PrepareMailerForDrawingProcPtr PrepareMailerForDrawingUPP;
  318. #endif
  319.  
  320. enum {
  321.     uppFrontWindowProcInfo = kPascalStackBased
  322.          | RESULT_SIZE(SIZE_CODE(sizeof(WindowPtr)))
  323.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(long))),
  324.     uppPrepareMailerForDrawingProcInfo = kPascalStackBased
  325.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(WindowPtr)))
  326.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long)))
  327. };
  328.  
  329. #if GENERATINGCFM
  330. #define NewFrontWindowProc(userRoutine)        \
  331.         (FrontWindowUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppFrontWindowProcInfo, GetCurrentArchitecture())
  332. #define NewPrepareMailerForDrawingProc(userRoutine)        \
  333.         (PrepareMailerForDrawingUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppPrepareMailerForDrawingProcInfo, GetCurrentArchitecture())
  334. #else
  335. #define NewFrontWindowProc(userRoutine)        \
  336.         ((FrontWindowUPP) (userRoutine))
  337. #define NewPrepareMailerForDrawingProc(userRoutine)        \
  338.         ((PrepareMailerForDrawingUPP) (userRoutine))
  339. #endif
  340.  
  341. #if GENERATINGCFM
  342. #define CallFrontWindowProc(userRoutine, clientData)        \
  343.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppFrontWindowProcInfo, (clientData))
  344. #define CallPrepareMailerForDrawingProc(userRoutine, window, clientData)        \
  345.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppPrepareMailerForDrawingProcInfo, (window), (clientData))
  346. #else
  347. #define CallFrontWindowProc(userRoutine, clientData)        \
  348.         (*(userRoutine))((clientData))
  349. #define CallPrepareMailerForDrawingProc(userRoutine, window, clientData)        \
  350.         (*(userRoutine))((window), (clientData))
  351. #endif
  352. typedef pascal Boolean (*SendOptionsFilterProcPtr)(DialogRef theDialog, EventRecord *theEvent, short itemHit, long clientData);
  353.  
  354. #if GENERATINGCFM
  355. typedef UniversalProcPtr SendOptionsFilterUPP;
  356. #else
  357. typedef SendOptionsFilterProcPtr SendOptionsFilterUPP;
  358. #endif
  359.  
  360. enum {
  361.     uppSendOptionsFilterProcInfo = kPascalStackBased
  362.          | RESULT_SIZE(SIZE_CODE(sizeof(Boolean)))
  363.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(DialogRef)))
  364.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(EventRecord *)))
  365.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(short)))
  366.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(long)))
  367. };
  368.  
  369. #if GENERATINGCFM
  370. #define NewSendOptionsFilterProc(userRoutine)        \
  371.         (SendOptionsFilterUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSendOptionsFilterProcInfo, GetCurrentArchitecture())
  372. #else
  373. #define NewSendOptionsFilterProc(userRoutine)        \
  374.         ((SendOptionsFilterUPP) (userRoutine))
  375. #endif
  376.  
  377. #if GENERATINGCFM
  378. #define CallSendOptionsFilterProc(userRoutine, theDialog, theEvent, itemHit, clientData)        \
  379.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSendOptionsFilterProcInfo, (theDialog), (theEvent), (itemHit), (clientData))
  380. #else
  381. #define CallSendOptionsFilterProc(userRoutine, theDialog, theEvent, itemHit, clientData)        \
  382.         (*(userRoutine))((theDialog), (theEvent), (itemHit), (clientData))
  383. #endif
  384. struct SMPMailerState {
  385.     short                             mailerCount;
  386.     short                             currentMailer;
  387.     Point                             upperLeft;
  388.     Boolean                         hasBeenReceived;
  389.     Boolean                         isTarget;
  390.     Boolean                         isExpanded;
  391.     Boolean                         canMoveToTrash;
  392.     Boolean                         canTag;
  393.     Byte                             padByte2;
  394.     unsigned long                     changeCount;
  395.     SMPMailerComponent                 targetComponent;
  396.     Boolean                         canCut;
  397.     Boolean                         canCopy;
  398.     Boolean                         canPaste;
  399.     Boolean                         canClear;
  400.     Boolean                         canSelectAll;
  401.     Byte                             padByte3;
  402.     SMPUndoState                     undoState;
  403.     Str63                             undoWhat;
  404. };
  405. typedef struct SMPMailerState SMPMailerState;
  406.  
  407. struct SMPSendOptions {
  408.     Boolean                         signWhenSent;
  409.     IPMPriority                     priority;
  410. };
  411. typedef struct SMPSendOptions SMPSendOptions;
  412.  
  413. typedef SMPSendOptions *SMPSendOptionsPtr;
  414. typedef SMPSendOptionsPtr *SMPSendOptionsHandle;
  415. struct SMPCloseOptions {
  416.     Boolean                         moveToTrash;
  417.     Boolean                         addTag;
  418.     RString32                         tag;
  419. };
  420. typedef struct SMPCloseOptions SMPCloseOptions;
  421.  
  422. typedef SMPCloseOptions *SMPCloseOptionsPtr;
  423. /*
  424. ----------------------------------------------------------------------------------------
  425.     Send Package Routines
  426. ----------------------------------------------------------------------------------------
  427. */
  428. extern pascal OSErr SMPSendLetter(SMPLetterPBPtr theLetter)
  429.  FOURWORDINLINE(0x203C, 0x0002, 0x01F4, 0xAA5D);
  430.  
  431. extern pascal OSErr SMPNewPage(OpenCPicParams *newHeader)
  432.  FOURWORDINLINE(0x203C, 0x0002, 0x0834, 0xAA5D);
  433.  
  434. extern pascal OSErr SMPImageErr(void )
  435.  FOURWORDINLINE(0x203C, 0x0000, 0x0835, 0xAA5D);
  436.  
  437. extern pascal OSErr SMPResolveToRecipient(PackedDSSpecPtr dsSpec, SMPRecipientDescriptorPtr *recipientList, AuthIdentity identity)
  438.  FOURWORDINLINE(0x203C, 0x0006, 0x044C, 0xAA5D);
  439.  
  440. extern pascal OSErr SMPInitMailer(long mailerVersion)
  441.  FOURWORDINLINE(0x203C, 0x0002, 0x1285, 0xAA5D);
  442.  
  443. extern pascal OSErr SMPGetDimensions(short *width, short *contractedHeight, short *expandedHeight)
  444.  FOURWORDINLINE(0x203C, 0x0006, 0x125C, 0xAA5D);
  445.  
  446. extern pascal OSErr SMPGetTabInfo(SMPMailerComponent *firstTab, SMPMailerComponent *lastTab)
  447.  FOURWORDINLINE(0x203C, 0x0004, 0x1274, 0xAA5D);
  448.  
  449. extern pascal OSErr SMPNewMailer(WindowPtr window, Point upperLeft, Boolean canContract, Boolean initiallyExpanded, AuthIdentity identity, PrepareMailerForDrawingUPP prepareMailerForDrawingCB, long clientData)
  450.  FOURWORDINLINE(0x203C, 0x000C, 0x125D, 0xAA5D);
  451.  
  452. extern pascal OSErr SMPPrepareToClose(WindowPtr window)
  453.  FOURWORDINLINE(0x203C, 0x0002, 0x1287, 0xAA5D);
  454.  
  455. extern pascal OSErr SMPCloseOptionsDialog(WindowPtr window, SMPCloseOptionsPtr closeOptions)
  456.  FOURWORDINLINE(0x203C, 0x0004, 0x1288, 0xAA5D);
  457.  
  458. extern pascal OSErr SMPTagDialog(WindowPtr window, RString32 *theTag)
  459.  FOURWORDINLINE(0x203C, 0x0004, 0x128B, 0xAA5D);
  460.  
  461. extern pascal OSErr SMPDisposeMailer(WindowPtr window, SMPCloseOptionsPtr closeOptions)
  462.  FOURWORDINLINE(0x203C, 0x0004, 0x125E, 0xAA5D);
  463.  
  464. extern pascal OSErr SMPMailerEvent(const EventRecord *event, SMPMailerResult *whatHappened, FrontWindowUPP frontWindowCB, long clientData)
  465.  FOURWORDINLINE(0x203C, 0x0008, 0x125F, 0xAA5D);
  466.  
  467. extern pascal OSErr SMPClearUndo(WindowPtr window)
  468.  FOURWORDINLINE(0x203C, 0x0002, 0x1275, 0xAA5D);
  469.  
  470. extern pascal OSErr SMPMailerEditCommand(WindowPtr window, SMPEditCommand command, SMPMailerResult *whatHappened)
  471.  FOURWORDINLINE(0x203C, 0x0005, 0x1260, 0xAA5D);
  472.  
  473. extern pascal OSErr SMPMailerForward(WindowPtr window, AuthIdentity from)
  474.  FOURWORDINLINE(0x203C, 0x0004, 0x1261, 0xAA5D);
  475.  
  476. extern pascal OSErr SMPMailerReply(WindowPtr originalLetter, WindowPtr newLetter, Boolean replyToAll, Point upperLeft, Boolean canContract, Boolean initiallyExpanded, AuthIdentity identity, PrepareMailerForDrawingUPP prepareMailerForDrawingCB, long clientData)
  477.  FOURWORDINLINE(0x203C, 0x000F, 0x1262, 0xAA5D);
  478.  
  479. extern pascal OSErr SMPGetMailerState(WindowPtr window, SMPMailerState *itsState)
  480.  FOURWORDINLINE(0x203C, 0x0004, 0x1263, 0xAA5D);
  481.  
  482. extern pascal OSErr SMPSendOptionsDialog(WindowPtr window, Str255 documentName, StringPtr nativeFormatNames[], unsigned short nameCount, SMPSendFormatMask canSend, SMPSendFormat *currentFormat, SendOptionsFilterUPP filterProc, long clientData, SMPSendFormat *shouldSend, SMPSendOptionsPtr sendOptions)
  483.  FOURWORDINLINE(0x203C, 0x0013, 0x1388, 0xAA5D);
  484.  
  485. extern pascal OSErr SMPPrepareCoverPages(WindowPtr window, short *pageCount)
  486.  FOURWORDINLINE(0x203C, 0x0004, 0x1264, 0xAA5D);
  487.  
  488. extern pascal OSErr SMPDrawNthCoverPage(WindowPtr window, short pageNumber, Boolean doneDrawingCoverPages)
  489.  FOURWORDINLINE(0x203C, 0x0004, 0x1265, 0xAA5D);
  490.  
  491. extern pascal OSErr SMPPrepareToChange(WindowPtr window)
  492.  FOURWORDINLINE(0x203C, 0x0002, 0x1289, 0xAA5D);
  493.  
  494. extern pascal OSErr SMPContentChanged(WindowPtr window)
  495.  FOURWORDINLINE(0x203C, 0x0002, 0x126F, 0xAA5D);
  496.  
  497. extern pascal OSErr SMPBeginSave(WindowPtr window, const FSSpec *diskLetter, OSType creator, OSType fileType, SMPSaveType saveType, Boolean *mustAddContent)
  498.  FOURWORDINLINE(0x203C, 0x000B, 0x1266, 0xAA5D);
  499.  
  500. extern pascal OSErr SMPEndSave(WindowPtr window, Boolean okToSave)
  501.  FOURWORDINLINE(0x203C, 0x0003, 0x1270, 0xAA5D);
  502.  
  503. extern pascal OSErr SMPBeginSend(WindowPtr window, OSType creator, OSType fileType, SMPSendOptionsPtr sendOptions, Boolean *mustAddContent)
  504.  FOURWORDINLINE(0x203C, 0x000A, 0x1267, 0xAA5D);
  505.  
  506. extern pascal OSErr SMPEndSend(WindowPtr window, Boolean okToSend)
  507.  FOURWORDINLINE(0x203C, 0x0003, 0x1271, 0xAA5D);
  508.  
  509. extern pascal OSErr SMPOpenLetter(const LetterDescriptor *letter, WindowPtr window, Point upperLeft, Boolean canContract, Boolean initiallyExpanded, PrepareMailerForDrawingUPP prepareMailerForDrawingCB, long clientData)
  510.  FOURWORDINLINE(0x203C, 0x000C, 0x1268, 0xAA5D);
  511.  
  512. extern pascal OSErr SMPAddMainEnclosure(WindowPtr window, const FSSpec *enclosure)
  513.  FOURWORDINLINE(0x203C, 0x0004, 0x127D, 0xAA5D);
  514.  
  515. extern pascal OSErr SMPGetMainEnclosureFSSpec(WindowPtr window, FSSpec *enclosureDir)
  516.  FOURWORDINLINE(0x203C, 0x0004, 0x127E, 0xAA5D);
  517.  
  518. extern pascal OSErr SMPAddContent(WindowPtr window, MailSegmentType segmentType, Boolean appendFlag, void *buffer, unsigned long bufferSize, StScrpRec *textScrap, Boolean startNewScript, ScriptCode script)
  519.  FOURWORDINLINE(0x203C, 0x000C, 0x127A, 0xAA5D);
  520.  
  521. extern pascal OSErr SMPReadContent(WindowPtr window, MailSegmentMask segmentTypeMask, void *buffer, unsigned long bufferSize, unsigned long *dataSize, StScrpRec *textScrap, ScriptCode *script, MailSegmentType *segmentType, Boolean *endOfScript, Boolean *endOfSegment, Boolean *endOfContent, long *segmentLength, long *segmentID)
  522.  FOURWORDINLINE(0x203C, 0x0019, 0x127B, 0xAA5D);
  523.  
  524. extern pascal OSErr SMPGetFontNameFromLetter(WindowPtr window, short fontNum, Str255 fontName, Boolean doneWithFontTable)
  525.  FOURWORDINLINE(0x203C, 0x0006, 0x127C, 0xAA5D);
  526.  
  527. extern pascal OSErr SMPAddBlock(WindowPtr window, const OCECreatorType *blockType, Boolean append, void *buffer, unsigned long bufferSize, MailBlockMode mode, unsigned long offset)
  528.  FOURWORDINLINE(0x203C, 0x000C, 0x127F, 0xAA5D);
  529.  
  530. extern pascal OSErr SMPReadBlock(WindowPtr window, const OCECreatorType *blockType, unsigned short blockIndex, void *buffer, unsigned long bufferSize, unsigned long dataOffset, unsigned long *dataSize, Boolean *endOfBlock, unsigned long *remaining)
  531.  FOURWORDINLINE(0x203C, 0x0011, 0x1280, 0xAA5D);
  532.  
  533. extern pascal OSErr SMPEnumerateBlocks(WindowPtr window, unsigned short startIndex, void *buffer, unsigned long bufferSize, unsigned long *dataSize, unsigned short *nextIndex, Boolean *more)
  534.  FOURWORDINLINE(0x203C, 0x000D, 0x1281, 0xAA5D);
  535.  
  536. extern pascal OSErr SMPDrawMailer(WindowPtr window)
  537.  FOURWORDINLINE(0x203C, 0x0002, 0x1269, 0xAA5D);
  538.  
  539. extern pascal OSErr SMPSetSubject(WindowPtr window, const RString *text)
  540.  FOURWORDINLINE(0x203C, 0x0004, 0x126B, 0xAA5D);
  541.  
  542. extern pascal OSErr SMPSetFromIdentity(WindowPtr window, AuthIdentity from)
  543.  FOURWORDINLINE(0x203C, 0x0004, 0x126C, 0xAA5D);
  544.  
  545. extern pascal OSErr SMPAddAddress(WindowPtr window, SMPAddressType addrType, OCEPackedRecipient *address)
  546.  FOURWORDINLINE(0x203C, 0x0005, 0x126D, 0xAA5D);
  547.  
  548. extern pascal OSErr SMPAddAttachment(WindowPtr window, const FSSpec *attachment)
  549.  FOURWORDINLINE(0x203C, 0x0004, 0x126E, 0xAA5D);
  550.  
  551. extern pascal OSErr SMPAttachDialog(WindowPtr window)
  552.  FOURWORDINLINE(0x203C, 0x0002, 0x1276, 0xAA5D);
  553.  
  554. extern pascal OSErr SMPExpandOrContract(WindowPtr window, Boolean expand)
  555.  FOURWORDINLINE(0x203C, 0x0003, 0x1272, 0xAA5D);
  556.  
  557. extern pascal OSErr SMPMoveMailer(WindowPtr window, short dh, short dv)
  558.  FOURWORDINLINE(0x203C, 0x0004, 0x126A, 0xAA5D);
  559.  
  560. extern pascal OSErr SMPBecomeTarget(WindowPtr window, Boolean becomeTarget, SMPMailerComponent whichField)
  561.  FOURWORDINLINE(0x203C, 0x0005, 0x1273, 0xAA5D);
  562.  
  563. extern pascal OSErr SMPGetComponentSize(WindowPtr window, unsigned short whichMailer, SMPMailerComponent whichField, unsigned short *size)
  564.  FOURWORDINLINE(0x203C, 0x0007, 0x1277, 0xAA5D);
  565.  
  566. extern pascal OSErr SMPGetComponentInfo(WindowPtr window, unsigned short whichMailer, SMPMailerComponent whichField, void *buffer)
  567.  FOURWORDINLINE(0x203C, 0x0007, 0x1278, 0xAA5D);
  568.  
  569. extern pascal OSErr SMPGetListItemInfo(WindowPtr window, unsigned short whichMailer, SMPMailerComponent whichField, void *buffer, unsigned long bufferLength, unsigned short startItem, unsigned short *itemCount, unsigned short *nextItem, Boolean *more)
  570.  FOURWORDINLINE(0x203C, 0x0010, 0x1279, 0xAA5D);
  571.  
  572. extern pascal OSErr SMPImage(WindowPtr window, SMPDrawImageUPP drawImageProc, long imageRefCon, Boolean supportsColor)
  573.  FOURWORDINLINE(0x203C, 0x0007, 0x1282, 0xAA5D);
  574.  
  575. extern pascal OSErr SMPGetNextLetter(OSType *typesList, short numTypes, LetterDescriptor *adjacentLetter)
  576.  FOURWORDINLINE(0x203C, 0x0005, 0x1286, 0xAA5D);
  577.  
  578. extern pascal OSErr SMPGetLetterInfo(LetterSpec *mailboxSpec, SMPLetterInfo *info)
  579.  FOURWORDINLINE(0x203C, 0x0004, 0x128A, 0xAA5D);
  580.  
  581. #endif
  582.  
  583. #if PRAGMA_ALIGN_SUPPORTED
  584. #pragma options align=reset
  585. #endif
  586.  
  587. #if PRAGMA_IMPORT_SUPPORTED
  588. #pragma import off
  589. #endif
  590.  
  591. #ifdef __cplusplus
  592. }
  593. #endif
  594.  
  595. #endif /* __OCESTANDARDMAIL__ */
  596.  
  597.